#! /bin/sh
# 上传包
# 参数清单：
#   file_path: 包路径
#   artifact_server: 包上传服务器
#   artifact_name: 包名称
#   artifact_owner: 包归属
#   artifact_version: 包版本
#   token_owner: 上传用户
#   token_value: 上传密钥


if [ $# -ne 7 ]; then
  echo "参数错误，参数实际个数：$#"
  echo "参数清单值：$@"
  exit 1
fi

set -e
set -x

artifact_path=$1
artifact_server=$2
artifact_owner=$3
artifact_name=$4
artifact_version=$5
token_owner=$6
token_value=$7

if [ ! -f "${artifact_path}" ]; then
  echo "文件不存在"
  exit 1
fi

file_name=$(basename "${artifact_path}")
artifact_url=${artifact_server}/api/packages/${artifact_owner}/generic/${artifact_name}/${artifact_version}/${file_name}

status_code=$(curl --user ${token_owner}:${token_value} -s -o /dev/null -w "%{http_code}" "${artifact_url}")
if [ "${status_code}" -eq 200 ]; then
  curl --user ${token_owner}:${token_value} -X DELETE "${artifact_url}"
fi
curl --user ${token_owner}:${token_value} --upload-file "${artifact_path}" "${artifact_url}"